#ifndef uCrMoCptH
#define uCrMoCptH

#include <Classes.hpp>
#include <Controls.hpp>
#include <ExtCtrls.hpp>
#include <StdCtrls.hpp>

#include <CForm.h>
#include <CEdit.h>
#include <CEditCpt.h>

#include "Compta.h"
#include "CPosteDLL.h"
#include "CCheckB.h"
#include <Graphics.hpp>
#include "cedit.h"
#include "ceditcpt.h"
#include "CBitBtn.h"
#include "CTable.h"
#include <Db.hpp>
#include <DBTables.hpp>

typedef void __fastcall ( *TMiseAjourDesTiers)( const AnsiString &pCompte);

class TdlgModCreCpt : public CForm
{
 __published:
    TLabel *lblCompte;
    TLabel *lblIntituleLong;
    TLabel *lblIntitule;
    TBevel *bvCadre;
    CEditCompte *edcptCompte;
  CBitBtn *btOk;
    CEdit *edIntitule;
    CEdit *edIntituleLong;
    TCheckBox *chkSupprime;
  CBitBtn *btAnnuler;
    TImage *imgIcon;
  CBitBtn *btParamAN;
  CEdit *edCompteAbrege;
  CCheckBox *chkRANDetaille;
  CCheckBox *chkSaisiePeriodes;
  CBitBtn *btParamSaisiePer;
    void __fastcall FormCloseQuery( TObject* pSender, bool& bCanClose);
    void __fastcall btOkClick( TObject* pSender);
  void __fastcall edcptCompteChange(TObject *Sender);
  void __fastcall btParamANClick(TObject *Sender);
  void __fastcall edCompteAbregeIllegalChar(CCustomEdit *pedSender,
          WORD &cIllegalCharCode, bool &bAccept);
 private:
  TTablePC* m_ptblPC;    // PC dans lequel modifier/créer le compte
  bool      m_bModifier; // TRUE si dialogue ouvert pour modifier m_cpt; FALSE pour créer un nouveau cpt à partir de m_cpt
  CCompte   m_cpt;       // Compte à modifier/créer
  CPosteDLL m_Poste;
 protected:
  virtual void __fastcall DoDataExchange( CDataExchange* pdx);
 public:
  __fastcall TdlgModCreCpt(TTablePC *ptblPC,const CCompte &cpt);
  __fastcall TdlgModCreCpt( bool              bModifier, // TRUE pour modifier le compte strCompte
                            TTablePC*         ptblPC,
                            const AnsiString& strCompte /* demande d'un n° de cpt seulement si ""*/);
}; /* class TdlgCrMoCompte */

extern PACKAGE_COMPTA TMiseAjourDesTiers CM_MiseAJourDesTiers;

bool __fastcall DlgCreerCompte(bool bModifier,TTablePC *ptblPC,const AnsiString &strCompte);
bool __fastcall DlgCreerCompte(TTablePC *ptblPC,const CCompte &cpt);



#endif
